package edu.pw.treegrid.server.classmodel;

import edu.pw.treegrid.server.message.Hierarchy;
import edu.pw.treegrid.server.message.Path;
import edu.pw.treegrid.server.reportmodel.ExpressionColumn;
import edu.pw.treegrid.server.reportmodel.Report;
import edu.pw.treegrid.server.reportmodel.ReportColumn;
import edu.pw.treegrid.server.reportmodel.ReportReferenceColumn;
import edu.pw.treegrid.server.reportmodel.ReportSimpleColumn;
import edu.pw.treegrid.shared.ReportColumnType;

public class BusinessModelData {
	public DomainClass segmentClass;
	public SimpleAttribute segmentIdAttribute;
	public SimpleAttribute segmentNazwaAttribute;
	
	public DomainClass etapClass;
	public SimpleAttribute etapIdAttribute;
	public SimpleAttribute etapNazwaAttribute;
	
	public DomainClass statusClass;
	public SimpleAttribute statusIdAttribute;
	public SimpleAttribute statusNazwaAttribute;
	
	public DomainClass klientClass;
	public SimpleAttribute klientIdAttribute;
	public SimpleAttribute klientNazwaAttribute;
	public SimpleAttribute klientTelefonAttribute;
	public ReferenceAttribute klientDaneFinansoweAttribute;
	public DictionaryAttribute klientDoradcaAttribute;	
	public DictionaryAttribute klientZespolAttribute;
	public DictionaryAttribute klientRegionAttribute;
	public DictionaryAttribute klientCentralaAttribute;
	public ReferenceAttribute klientSpotkaniaPodsumowanieAttribute;
	public DictionaryAttribute klientSegmentAttribute;
	public DictionaryAttribute klientEtapAttribute;
	public DictionaryAttribute klientStatusAttribute;
	
	public DomainClass doradcaClass;
	public SimpleAttribute doradcaIdAttribute;
	public SimpleAttribute doradcaNazwaAttribute;
	public DictionaryAttribute doradcaZespolAttribute;
	public DictionaryAttribute doradcaRegionAttribute;
	public DictionaryAttribute doradcaCentralaAttribute;
	
	public DomainClass zespolClass;
	public SimpleAttribute zespolIdAttribute;
	public SimpleAttribute zespolNazwaAttribute;
	public DictionaryAttribute zespolRegionAttribute;
	public DictionaryAttribute zespolCentralaAttribute;
	
	public DomainClass regionClass;
	public SimpleAttribute regionIdAttribute;
	public SimpleAttribute regionNazwaAttribute;
	public DictionaryAttribute regionCentralaAttribute;
	
	public DomainClass centralaClass;
	public SimpleAttribute centralaIdAttribute;
	public SimpleAttribute centralaNazwaAttribute;
	
	public DomainClass daneFinansoweClass;
	public SimpleAttribute daneFinansoweKlientIdAttribute;
	public SimpleAttribute daneFinansowePrzychodAttribute;
	public SimpleAttribute daneFinansoweLiczbaZatrudnionychAttribute;
	
	public DomainClass spotkaniaClass;
	public SimpleAttribute spotkaniaIdAttribute;
	public SimpleAttribute spotkaniaTematAttribute;
	public SimpleAttribute spotkaniaDataAttribute;
	public SimpleAttribute spotkaniaRokAttribute;
	public SimpleAttribute spotkaniaMiesiacAttribute;
	public ReferenceAttribute spotkaniaKlientAttribute;
	public DictionaryAttribute spotkaniaKlientNazwaAttribute;
	public DictionaryAttribute spotkaniaDoradcaAttribute;
	public DictionaryAttribute spotkaniaZespolAttribute;
	public DictionaryAttribute spotkaniaRegionAttribute;
	public DictionaryAttribute spotkaniaCentralaAttribute;
	
	public DomainClass spotkaniaPodsumowanieClass;
	public SimpleAttribute spotkaniaPodsumowanieKlient;
	public ReferenceAttribute spotkaniaPodsumowanieOstatnie;
	public SimpleAttribute spotkaniaPodsumowanieLiczbaSpotkan30;
	public SimpleAttribute spotkaniaPodsumowanieLiczbaSpotkan90;
	public SimpleAttribute spotkaniaPodsumowanieLiczbaSpotkan360;
	
	public Report report1;
	public ReportSimpleColumn report1KlientNazwa;
	
	public Report report2;
	public ReportSimpleColumn report2KlientNazwa;
	public ReportSimpleColumn report2KlientTelefon;
	
	public Report report3;
	public ReportSimpleColumn report3KlientNazwaAttribute;
	public ReportSimpleColumn report3KlientTelefonAttribute;
	public ReportReferenceColumn report3KlientDaneFinansoweAttribute;
	
	public Report report4;
	public ReportSimpleColumn report4KlientNazwaAttribute;
	public ReportColumn report4KlientTelefonAttribute;
	public ReportSimpleColumn report4KlientDoradcaAttribute;
	
	public Report report5;
	public ReportSimpleColumn report5KlientNazwaAttribute;
	public ReportSimpleColumn report5KlientTelefonAttribute;
	public ReportSimpleColumn report5KlientDoradcaAttribute;
	public ReportSimpleColumn report5KlientZespolAttribute;
	public ReportReferenceColumn report5KlientDaneFinansoweAttribute;
	
	public Report report6;
	public ReportSimpleColumn report6TematAttribute;
	public ReportSimpleColumn report6DoradcaSpotkaniaAttribute;
	public ReportReferenceColumn report6KlientNazwaAttribute;
	public ReportReferenceColumn report6DoradcaKlientaAttribute;
	
	
	public Report report7;
	public ReportSimpleColumn report7TematAttribute;
	public ReportSimpleColumn report7DoradcaSpotkaniaAttribute;
	public ReportSimpleColumn report7ZespolSpotkaniaAttribute;
	public ReportSimpleColumn report7RegionSpotkaniaAttribute;
	public ReportReferenceColumn report7KlientNazwaAttribute;
	public ReportReferenceColumn report7DoradcaKlientaAttribute;
	public ReportReferenceColumn report7KlientDaneFinansoweAttribute;

	public Report bazaKlientowReport;
	public ReportSimpleColumn bazaKlientowCentrala;
	public ReportSimpleColumn bazaKlientowRegion;
	public ReportSimpleColumn bazaKlientowZespol;
	public ReportSimpleColumn bazaKlientowDoradca;
	public ReportSimpleColumn bazaKlientowKlient;
	
	public Report spotkaniaReport;
	public ReportSimpleColumn spotkaniaReportCentrala;
	
	public Report prospektyReport;
	public ReportSimpleColumn bazaProspektowCentrala;
	public ReportSimpleColumn bazaProspektowRegion;
	public ReportSimpleColumn bazaProspektowZespol;
	public ReportSimpleColumn bazaProspektowDoradca;
	public ReportSimpleColumn bazaProspektowKlient;
	
	public Path emptyPath;
	public Path oneElementPath;
	public Path twoElementPath;
	public Hierarchy K_Hierarchy;
	public Hierarchy D_K_Hierarchy;
	public Hierarchy Z_D_K_Hierarchy;
	
	public Hierarchy K_report1Hierarchy;
	
	public Hierarchy D_K_report7Hierarchy;
	public Hierarchy Z_D_K_report7Hierarchy;
	public Hierarchy R_Z_D_K_report7Hierarchy;
	public Path report7oneElementPath;
	
	public Hierarchy K_report5Hierarchy;
	public Hierarchy D_K_report5Hierarchy;
	
	public BusinessModelData() {
		initSegment();
		initEtap();
		initStatus();
		initSpotkaniaPodsumowanieClass();
		initDaneFinansoweClass();
		initCentralaClass();
		initRegionClass();
		initZespolClass();
		initDoradcaClass();
		initKlientClass();
		initSpotkaniaClass();
		initReport1();
		initReport2();
		initReport3();
		initReport4();
		initReport5();
		initReport6();
		initReport7();
		initBazaKlientow();
		initSpotkaniaReport();
		initBazaProspektow();
		initHierarchy();
		initOstatnieSpotkanie();
	}


	private void initSpotkaniaReport() {
		spotkaniaReport = new Report();
		spotkaniaReport.setId("spotkaniaReport");
		spotkaniaReport.setName("Spotkania");
		spotkaniaReport.setMainClass(spotkaniaClass);
		
		ReportSimpleColumn temat = new ReportSimpleColumn("temat");
		temat.setDomainAttribute(spotkaniaTematAttribute);
		temat.setHierarchyCandidate(false);
		temat.setName("temat");
		temat.setTitle("Temat");
		temat.setType(ReportColumnType.TEXT);
		spotkaniaReport.addColumn(temat);
		
		ReportSimpleColumn data = new ReportSimpleColumn("data");
		data.setDomainAttribute(spotkaniaDataAttribute);
		data.setHierarchyCandidate(false);
		data.setName("data");
		data.setTitle("Data");
		data.setType(ReportColumnType.DATE);
		spotkaniaReport.addColumn(data);
		
		ReportSimpleColumn klient = new ReportSimpleColumn("klient");
		klient.setDomainAttribute(spotkaniaKlientNazwaAttribute);
		klient.setHierarchyCandidate(true);
		klient.setName("klient");
		klient.setTitle("Klient");
		klient.setType(ReportColumnType.TEXT);
		klient.setImageSrc("pieces/16/pawn_yellow.png");
		spotkaniaReport.addColumn(klient);
		
		ReportSimpleColumn doradca = new ReportSimpleColumn("doradca");
		doradca.setDomainAttribute(spotkaniaDoradcaAttribute);
		doradca.setHierarchyCandidate(true);
		doradca.setName("doradca");
		doradca.setTitle("Doradca");
		doradca.setType(ReportColumnType.TEXT);
		doradca.setImageSrc("pieces/16/cube_yellow.gif");
		spotkaniaReport.addColumn(doradca);
		
		ReportSimpleColumn zespol = new ReportSimpleColumn("zespol");
		zespol.setDomainAttribute(spotkaniaZespolAttribute);
		zespol.setHierarchyCandidate(true);
		zespol.setName("zespol");
		zespol.setTitle("Zespół");
		zespol.setType(ReportColumnType.TEXT);
		zespol.setImageSrc("pieces/16/cube_green.gif");
		spotkaniaReport.addColumn(zespol);
		
		ReportSimpleColumn region = new ReportSimpleColumn("region");
		region.setDomainAttribute(spotkaniaRegionAttribute);
		region.setHierarchyCandidate(true);
		region.setName("region");
		region.setTitle("Region");
		region.setType(ReportColumnType.TEXT);
		region.setImageSrc("pieces/16/cube_blue.gif");
		spotkaniaReport.addColumn(region);
		
		spotkaniaReportCentrala = new ReportSimpleColumn("centrala");
		spotkaniaReportCentrala.setDomainAttribute(spotkaniaCentralaAttribute);
		spotkaniaReportCentrala.setHierarchyCandidate(true);
		spotkaniaReportCentrala.setName("centrala");
		spotkaniaReportCentrala.setTitle("Centrala");
		spotkaniaReportCentrala.setType(ReportColumnType.TEXT);
		spotkaniaReportCentrala.setImageSrc("pieces/16/cubes_blue.png");
		spotkaniaReport.addColumn(spotkaniaReportCentrala);
		
		ReportSimpleColumn rok = new ReportSimpleColumn("rok");
		rok.setDomainAttribute(spotkaniaRokAttribute);
		rok.setHierarchyCandidate(true);
		rok.setName("rok");
		rok.setTitle("Rok");
		rok.setType(ReportColumnType.INTEGER);
		rok.setImageSrc("silk/calendar.png");
		spotkaniaReport.addColumn(rok);
		
		ReportSimpleColumn miesiac = new ReportSimpleColumn("miesiac");
		miesiac.setDomainAttribute(spotkaniaMiesiacAttribute);
		miesiac.setHierarchyCandidate(true);
		miesiac.setName("miesiac");
		miesiac.setTitle("Miesiąc");
		miesiac.setImageSrc("silk/calendar_view_day.png");
		miesiac.setType(ReportColumnType.INTEGER);
		spotkaniaReport.addColumn(miesiac);
		
		ExpressionColumn e1 = new ExpressionColumn("e1");
		e1.setHierarchyCandidate(true);
		e1.setName("e1");
		e1.setTitle("E1");
		e1.setImageSrc("silk/calendar_view_day.png");
		e1.setType(ReportColumnType.INTEGER);
		e1.setExpression("miesiac * rok");
		spotkaniaReport.addColumn(e1);
		
		ExpressionColumn e2 = new ExpressionColumn("e2");
		e2.setHierarchyCandidate(true);
		e2.setName("e2");
		e2.setTitle("E2");
		e2.setImageSrc("silk/calendar_view_day.png");
		e2.setType(ReportColumnType.INTEGER);
		e2.setExpression("miesiac + rok");
		spotkaniaReport.addColumn(e2);
	}

	private void initBazaKlientow() {
		bazaKlientowReport = new Report();
		bazaKlientowReport.setId("bazaKlientow");
		bazaKlientowReport.setName("Baza klientów");
		
		bazaKlientowReport.setMainClass(klientClass);
		
		this.bazaKlientowKlient = new ReportSimpleColumn("klient");
		this.bazaKlientowKlient.setDomainAttribute(klientNazwaAttribute);
		this.bazaKlientowKlient.setHierarchyCandidate(false);
		this.bazaKlientowKlient.setImageSrc("pieces/16/cube_yellow.gif");
		this.bazaKlientowKlient.setTitle("Klient");
		this.bazaKlientowKlient.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(this.bazaKlientowKlient);
		
		this.bazaKlientowDoradca = new ReportSimpleColumn("doradca");
		this.bazaKlientowDoradca.setDomainAttribute(klientDoradcaAttribute);
		this.bazaKlientowDoradca.setHierarchyCandidate(true);
		this.bazaKlientowDoradca.setImageSrc("pieces/16/cube_yellow.gif");
		this.bazaKlientowDoradca.setTitle("Doradca");
		this.bazaKlientowDoradca.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(this.bazaKlientowDoradca);
		
		this.bazaKlientowZespol = new ReportSimpleColumn("zespol");
		this.bazaKlientowZespol.setDomainAttribute(klientZespolAttribute);
		this.bazaKlientowZespol.setHierarchyCandidate(true);
		this.bazaKlientowZespol.setImageSrc("pieces/16/cube_green.gif");
		this.bazaKlientowZespol.setTitle("Zespół");
		this.bazaKlientowZespol.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(this.bazaKlientowZespol);
		
		this.bazaKlientowRegion = new ReportSimpleColumn("region");
		this.bazaKlientowRegion.setDomainAttribute(klientRegionAttribute);
		this.bazaKlientowRegion.setHierarchyCandidate(true);
		this.bazaKlientowRegion.setImageSrc("pieces/16/cube_blue.gif");
		this.bazaKlientowRegion.setTitle("Region");
		this.bazaKlientowRegion.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(this.bazaKlientowRegion);
		
		this.bazaKlientowCentrala = new ReportSimpleColumn("centrala");
		this.bazaKlientowCentrala.setDomainAttribute(klientCentralaAttribute);
		this.bazaKlientowCentrala.setHierarchyCandidate(true);
		this.bazaKlientowCentrala.setImageSrc("pieces/16/cubes_blue.png");
		this.bazaKlientowCentrala.setTitle("Centrala");
		this.bazaKlientowCentrala.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(this.bazaKlientowCentrala);
		
		ReportSimpleColumn segment = new ReportSimpleColumn("segment");
		segment.setDomainAttribute(klientSegmentAttribute);
		segment.setHierarchyCandidate(true);
		segment.setImageSrc("dot_icon.gif");
		segment.setTitle("Segment");
		segment.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(segment);
		
		ReportReferenceColumn spotkania30 = new ReportReferenceColumn("spotkania30");
		spotkania30.setDomainAttribute(klientSpotkaniaPodsumowanieAttribute);
		ReportSimpleColumn spotkania30rc = new ReportSimpleColumn("spotkania30rc1");
		spotkania30rc.setDomainAttribute(spotkaniaPodsumowanieLiczbaSpotkan30);
		spotkania30rc.setFormat("#,###");
		spotkania30rc.setHierarchyCandidate(false);
		spotkania30rc.setTitle("Spotkania 30");
		spotkania30rc.setType(ReportColumnType.INTEGER);
		spotkania30.setReferenceColumn(spotkania30rc);
		bazaKlientowReport.addColumn(spotkania30);
		
		ReportReferenceColumn spotkania90 = new ReportReferenceColumn("spotkania90");
		spotkania90.setDomainAttribute(klientSpotkaniaPodsumowanieAttribute);
		ReportSimpleColumn spotkania90rc = new ReportSimpleColumn("spotkania90rc1");
		spotkania90rc.setDomainAttribute(spotkaniaPodsumowanieLiczbaSpotkan90);
		spotkania90rc.setFormat("#,###");
		spotkania90rc.setHierarchyCandidate(false);
		spotkania90rc.setTitle("Spotkania 90");
		spotkania90rc.setType(ReportColumnType.INTEGER);
		spotkania90.setReferenceColumn(spotkania90rc);
		bazaKlientowReport.addColumn(spotkania90);
		
		ReportReferenceColumn spotkania360 = new ReportReferenceColumn("spotkania360");
		spotkania360.setDomainAttribute(klientSpotkaniaPodsumowanieAttribute);
		ReportSimpleColumn spotkania360rc = new ReportSimpleColumn("spotkania360rc1");
		spotkania360rc.setFormat("#,###");
		spotkania360rc.setHierarchyCandidate(false);
		spotkania360rc.setTitle("Spotkania 360");
		spotkania360rc.setType(ReportColumnType.INTEGER);
		spotkania360rc.setDomainAttribute(spotkaniaPodsumowanieLiczbaSpotkan360);
		spotkania360.setReferenceColumn(spotkania360rc);
		bazaKlientowReport.addColumn(spotkania360);
		
		ReportSimpleColumn telefon = new ReportSimpleColumn("telefon");
		telefon.setDomainAttribute(klientTelefonAttribute);
		telefon.setHierarchyCandidate(false);
		telefon.setTitle("Telefon");
		telefon.setType(ReportColumnType.TEXT);
		bazaKlientowReport.addColumn(telefon);
		
		ReportReferenceColumn przychod = new ReportReferenceColumn("przychod");
		przychod.setDomainAttribute(klientDaneFinansoweAttribute);		
		ReportSimpleColumn rsc3 = new ReportSimpleColumn("c5");
		rsc3.setDomainAttribute(daneFinansowePrzychodAttribute);
		rsc3.setType(ReportColumnType.INTEGER);
		rsc3.setTitle("Przychod");
		rsc3.setHierarchyCandidate(false);
		rsc3.setImageSrc("pieces/16/pawn_red.png");
		rsc3.setFormat("#,###");
		przychod.setReferenceColumn(rsc3);
		bazaKlientowReport.addColumn(przychod);
		
		ReportReferenceColumn przychodAvg = new ReportReferenceColumn("przychodavg");
		przychodAvg.setDomainAttribute(klientDaneFinansoweAttribute);		
		ReportSimpleColumn rsc32 = new ReportSimpleColumn("rsc32");
		rsc32.setDomainAttribute(daneFinansowePrzychodAttribute);
		rsc32.setType(ReportColumnType.FLOAT);
		rsc32.setTitle("Przychod średnia");
		rsc32.setHierarchyCandidate(false);
		rsc32.setImageSrc("pieces/16/pawn_red.png");
		rsc32.setFormat("#,###");
		rsc32.setAggregationFunction("avg");
		przychodAvg.setReferenceColumn(rsc32);
		bazaKlientowReport.addColumn(przychodAvg);
	}

	

	private void initBazaProspektow() {
		prospektyReport = new Report();
		prospektyReport.setId("prospektyReport");
		prospektyReport.setName("Baza prospektów");
		
		prospektyReport.setMainClass(klientClass);
		
		this.bazaProspektowKlient = new ReportSimpleColumn("prospekt");
		this.bazaProspektowKlient.setDomainAttribute(klientNazwaAttribute);
		this.bazaProspektowKlient.setHierarchyCandidate(false);
		this.bazaProspektowKlient.setImageSrc("pieces/16/cube_yellow.gif");
		this.bazaProspektowKlient.setTitle("Prospekt");
		this.bazaProspektowKlient.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(this.bazaProspektowKlient);
		
		this.bazaProspektowDoradca = new ReportSimpleColumn("doradca");
		this.bazaProspektowDoradca.setDomainAttribute(klientDoradcaAttribute);
		this.bazaProspektowDoradca.setHierarchyCandidate(true);
		this.bazaProspektowDoradca.setImageSrc("pieces/16/cube_yellow.gif");
		this.bazaProspektowDoradca.setTitle("Doradca");
		this.bazaProspektowDoradca.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(this.bazaProspektowDoradca);
		
		this.bazaProspektowZespol = new ReportSimpleColumn("zespol");
		this.bazaProspektowZespol.setDomainAttribute(klientZespolAttribute);
		this.bazaProspektowZespol.setHierarchyCandidate(true);
		this.bazaProspektowZespol.setImageSrc("pieces/16/cube_green.gif");
		this.bazaProspektowZespol.setTitle("Zespół");
		this.bazaProspektowZespol.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(this.bazaProspektowZespol);
		
		this.bazaProspektowRegion = new ReportSimpleColumn("region");
		this.bazaProspektowRegion.setDomainAttribute(klientRegionAttribute);
		this.bazaProspektowRegion.setHierarchyCandidate(true);
		this.bazaProspektowRegion.setImageSrc("pieces/16/cube_blue.gif");
		this.bazaProspektowRegion.setTitle("Region");
		this.bazaProspektowRegion.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(this.bazaProspektowRegion);
		
		this.bazaProspektowCentrala = new ReportSimpleColumn("centrala");
		this.bazaProspektowCentrala.setDomainAttribute(klientCentralaAttribute);
		this.bazaProspektowCentrala.setHierarchyCandidate(true);
		this.bazaProspektowCentrala.setImageSrc("pieces/16/cubes_blue.png");
		this.bazaProspektowCentrala.setTitle("Centrala");
		this.bazaProspektowCentrala.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(this.bazaProspektowCentrala);
		
		ReportSimpleColumn segment = new ReportSimpleColumn("segment");
		segment.setDomainAttribute(klientSegmentAttribute);
		segment.setHierarchyCandidate(true);
		segment.setImageSrc("dot_icon.gif");
		segment.setTitle("Segment");
		segment.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(segment);
		
		ReportSimpleColumn etap = new ReportSimpleColumn("etap");
		etap.setDomainAttribute(klientEtapAttribute);
		etap.setHierarchyCandidate(true);
		etap.setImageSrc("dot_icon.gif");
		etap.setTitle("Etap");
		etap.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(etap);
		
		ReportSimpleColumn status = new ReportSimpleColumn("status");
		status.setDomainAttribute(klientStatusAttribute);
		status.setHierarchyCandidate(true);
		status.setImageSrc("dot_icon.gif");
		status.setTitle("Status");
		status.setType(ReportColumnType.TEXT);
		prospektyReport.addColumn(status);
	}


	private void initHierarchy() {
		this.emptyPath = new Path();
		this.emptyPath.addNode("null");
		this.oneElementPath = new Path();
		this.oneElementPath.addNode("null");
		this.oneElementPath.addNode("CONDTION_VALUE");
		this.twoElementPath = new Path();
		this.twoElementPath.addNode("null");
		this.twoElementPath.addNode("CV1");
		this.twoElementPath.addNode("CV2");
		this.K_Hierarchy = new Hierarchy();
		this.K_Hierarchy.addGroupColumn(this.report1KlientNazwa);
		this.D_K_Hierarchy = new Hierarchy();
		this.D_K_Hierarchy.addGroupColumn(this.report4KlientDoradcaAttribute);
		this.D_K_Hierarchy.addGroupColumn(this.report4KlientNazwaAttribute);
		this.Z_D_K_Hierarchy = new Hierarchy();
		this.Z_D_K_Hierarchy.addGroupColumn(this.report5KlientZespolAttribute);
		this.Z_D_K_Hierarchy.addGroupColumn(this.report5KlientDoradcaAttribute);
		this.Z_D_K_Hierarchy.addGroupColumn(this.report5KlientNazwaAttribute);
		this.D_K_report7Hierarchy = new Hierarchy();
		this.D_K_report7Hierarchy.addGroupColumn(this.report7DoradcaSpotkaniaAttribute);
		this.D_K_report7Hierarchy.addGroupColumn(this.report7KlientNazwaAttribute);
		this.Z_D_K_report7Hierarchy = new Hierarchy();
		this.Z_D_K_report7Hierarchy.addGroupColumn(this.report7ZespolSpotkaniaAttribute);
		this.Z_D_K_report7Hierarchy.addGroupColumn(this.report7DoradcaSpotkaniaAttribute);
		this.Z_D_K_report7Hierarchy.addGroupColumn(this.report7KlientNazwaAttribute);
		this.R_Z_D_K_report7Hierarchy = new Hierarchy();
		this.R_Z_D_K_report7Hierarchy.addGroupColumn(this.report7RegionSpotkaniaAttribute);
		this.R_Z_D_K_report7Hierarchy.addGroupColumn(this.report7ZespolSpotkaniaAttribute);
		this.R_Z_D_K_report7Hierarchy.addGroupColumn(this.report7DoradcaSpotkaniaAttribute);
		this.R_Z_D_K_report7Hierarchy.addGroupColumn(this.report7KlientNazwaAttribute);
		
		this.K_report1Hierarchy = new Hierarchy();
		this.K_report1Hierarchy.addGroupColumn(report1KlientNazwa);
		
		this.report7oneElementPath = new Path();
		this.report7oneElementPath.addNode(100);
		
		this.K_report5Hierarchy = new Hierarchy();
		this.K_report5Hierarchy.addGroupColumn(this.report5KlientNazwaAttribute);
		this.D_K_report5Hierarchy = new Hierarchy();
		this.D_K_report5Hierarchy.addGroupColumn(this.report5KlientDoradcaAttribute);
		this.D_K_report5Hierarchy.addGroupColumn(this.report5KlientNazwaAttribute);
	}

	private void initReport7() {
		report7 = new Report();
		report7.setId("7");
		report7.setName("Report-siedem");
		report7.setMainClass(this.spotkaniaClass);
		report7.setId("7");
		
		report7TematAttribute = new ReportSimpleColumn("temat");
		report7TematAttribute.setDomainAttribute(spotkaniaTematAttribute);
		report7TematAttribute.setType(ReportColumnType.TEXT);
		report7TematAttribute.setTitle("Temat spotkania");
		report7TematAttribute.setHierarchyCandidate(false);
		report7TematAttribute.setImageSrc("pieces/16/pawn_red.png");
		report7.addColumn(report7TematAttribute);
		
		report7DoradcaSpotkaniaAttribute = new ReportSimpleColumn("doradca");
		report7DoradcaSpotkaniaAttribute.setDomainAttribute(spotkaniaDoradcaAttribute);
		report7DoradcaSpotkaniaAttribute.setType(ReportColumnType.TEXT);
		report7DoradcaSpotkaniaAttribute.setTitle("Doradca");
		report7DoradcaSpotkaniaAttribute.setHierarchyCandidate(true);
		report7DoradcaSpotkaniaAttribute.setImageSrc("pieces/16/cube_green.gif");
		report7.addColumn(report7DoradcaSpotkaniaAttribute);
		
		report7ZespolSpotkaniaAttribute = new ReportSimpleColumn("zespol");
		report7ZespolSpotkaniaAttribute.setDomainAttribute(spotkaniaZespolAttribute);
		report7ZespolSpotkaniaAttribute.setType(ReportColumnType.TEXT);
		report7ZespolSpotkaniaAttribute.setTitle("Zespol");
		report7ZespolSpotkaniaAttribute.setHierarchyCandidate(true);
		report7ZespolSpotkaniaAttribute.setImageSrc("pieces/16/cube_blue.gif");
		report7.addColumn(report7ZespolSpotkaniaAttribute);
		
		report7RegionSpotkaniaAttribute = new ReportSimpleColumn("region");
		report7RegionSpotkaniaAttribute.setDomainAttribute(spotkaniaRegionAttribute);
		report7RegionSpotkaniaAttribute.setType(ReportColumnType.TEXT);
		report7RegionSpotkaniaAttribute.setTitle("Region");
		report7RegionSpotkaniaAttribute.setHierarchyCandidate(true);
		report7RegionSpotkaniaAttribute.setImageSrc("pieces/16/cubes_blue.png");
		report7.addColumn(report7RegionSpotkaniaAttribute);
		
		report7KlientNazwaAttribute = new ReportReferenceColumn("klient");
		report7KlientNazwaAttribute.setDomainAttribute(spotkaniaKlientAttribute);
		ReportSimpleColumn rsc1 = new ReportSimpleColumn("c1");
		rsc1.setType(ReportColumnType.TEXT);
		rsc1.setTitle("Klient");
		rsc1.setHierarchyCandidate(true);
		rsc1.setImageSrc("pieces/16/cube_yellow.gif");
		rsc1.setDomainAttribute(klientNazwaAttribute);
		report7KlientNazwaAttribute.setReferenceColumn(rsc1);
		report7.addColumn(report7KlientNazwaAttribute);
		
		report7DoradcaKlientaAttribute = new ReportReferenceColumn("doradca2");
		report7DoradcaKlientaAttribute.setDomainAttribute(spotkaniaKlientAttribute);
		ReportSimpleColumn rsc2 = new ReportSimpleColumn("c2");
		rsc2.setType(ReportColumnType.TEXT);
		rsc2.setTitle("Doradca klienta");
		rsc2.setHierarchyCandidate(true);
		rsc2.setImageSrc("pieces/16/cube_green.gif");
		rsc2.setDomainAttribute(klientDoradcaAttribute);
		report7DoradcaKlientaAttribute.setReferenceColumn(rsc2);
		report7.addColumn(report7DoradcaKlientaAttribute);
		
		report7KlientDaneFinansoweAttribute = new ReportReferenceColumn("c3");
		report7KlientDaneFinansoweAttribute.setDomainAttribute(spotkaniaKlientAttribute);
		
		ReportReferenceColumn rfc = new ReportReferenceColumn("c4");
		rfc.setDomainAttribute(klientDaneFinansoweAttribute);		
		ReportSimpleColumn rsc3 = new ReportSimpleColumn("c5");
		rsc3.setType(ReportColumnType.INTEGER);
		rsc3.setTitle("Przychod");
		rsc3.setHierarchyCandidate(false);
		rsc3.setImageSrc("pieces/16/pawn_red.png");
		rsc3.setFormat("0,000");
		rsc3.setDomainAttribute(daneFinansowePrzychodAttribute);
		rfc.setReferenceColumn(rsc3);
		report7KlientDaneFinansoweAttribute.setReferenceColumn(rfc);
		report7.addColumn(report7KlientDaneFinansoweAttribute);
	}

	private void initReport6() {
		report6 = new Report();
		report6.setMainClass(this.spotkaniaClass);
		report6.setId("6");
		report6.setName("6");
		
		report6TematAttribute = new ReportSimpleColumn("c1");
		report6TematAttribute.setDomainAttribute(spotkaniaTematAttribute);
		report6TematAttribute.setType(ReportColumnType.TEXT);
		report6.addColumn(report6TematAttribute);
		
		report6DoradcaSpotkaniaAttribute = new ReportSimpleColumn("c2");
		report6DoradcaSpotkaniaAttribute.setDomainAttribute(spotkaniaDoradcaAttribute);
		report6DoradcaSpotkaniaAttribute.setType(ReportColumnType.TEXT);
		report6.addColumn(report6DoradcaSpotkaniaAttribute);
		
		report6KlientNazwaAttribute = new ReportReferenceColumn("c3");
		report6KlientNazwaAttribute.setDomainAttribute(spotkaniaKlientAttribute);
		ReportSimpleColumn rsc1 = new ReportSimpleColumn("c4");
		rsc1.setDomainAttribute(klientNazwaAttribute);
		report6KlientNazwaAttribute.setReferenceColumn(rsc1);
		report6.addColumn(report6KlientNazwaAttribute);
		
		report6DoradcaKlientaAttribute = new ReportReferenceColumn("c5");
		report6DoradcaKlientaAttribute.setDomainAttribute(spotkaniaKlientAttribute);
		ReportSimpleColumn rsc2 = new ReportSimpleColumn("c6");
		rsc2.setDomainAttribute(klientDoradcaAttribute);
		report6DoradcaKlientaAttribute.setReferenceColumn(rsc2);
		report6.addColumn(report6DoradcaKlientaAttribute);		
	}

	private void initSpotkaniaClass() {
		spotkaniaClass = new DomainClass();
		spotkaniaClass.setId("spotkaniaClass");
		
		spotkaniaClass.setName("Spotkania");
		spotkaniaClass.setTableName("ZDARZENIA");
		
		spotkaniaIdAttribute = new SimpleAttribute();
		spotkaniaIdAttribute.setName("spotkaniaId");
		spotkaniaIdAttribute.setExpression("ZDARZENIE_ID");
		spotkaniaIdAttribute.setId("spotkaniaIdAttribute");
		spotkaniaClass.addAttribute(spotkaniaIdAttribute);
		spotkaniaClass.setPrimaryAttribute(spotkaniaIdAttribute);
		
		spotkaniaTematAttribute = new SimpleAttribute();
		spotkaniaTematAttribute.setName("temat");
		spotkaniaTematAttribute.setExpression("TEMAT");
		spotkaniaTematAttribute.setId("spotkaniaTematAttribute");
		spotkaniaClass.addAttribute(spotkaniaTematAttribute);
		
		spotkaniaDataAttribute = new SimpleAttribute();
		spotkaniaDataAttribute.setName("data");
		spotkaniaDataAttribute.setExpression("DATA_ZDARZENIA");
		spotkaniaDataAttribute.setId("spotkaniaDataAttribute");
		spotkaniaClass.addAttribute(spotkaniaDataAttribute);
		
		spotkaniaRokAttribute = new SimpleAttribute();
		spotkaniaRokAttribute.setName("rok");
		spotkaniaRokAttribute.setExpression("extract(year from $.DATA_ZDARZENIA)");
		spotkaniaRokAttribute.setId("spotkaniaRokAttribute");
		spotkaniaClass.addAttribute(spotkaniaRokAttribute);
		
		spotkaniaMiesiacAttribute = new SimpleAttribute();
		spotkaniaMiesiacAttribute.setName("miesiac");
		spotkaniaMiesiacAttribute.setExpression("extract(month from $.DATA_ZDARZENIA)");
		spotkaniaMiesiacAttribute.setId("spotkaniaMiesiacAttribute");
		spotkaniaClass.addAttribute(spotkaniaMiesiacAttribute);
		
		spotkaniaKlientAttribute = new ReferenceAttribute();
		spotkaniaKlientAttribute.setId("spotkaniaKlientAttribute");
		spotkaniaKlientAttribute.setJoinColumnName("KLIENT_ID");
		spotkaniaKlientAttribute.setName("spotkaniaKlientAttribute");
		spotkaniaKlientAttribute.setReferenceClass(klientClass);
		spotkaniaClass.addAttribute(spotkaniaKlientAttribute);
		
		spotkaniaKlientNazwaAttribute = new DictionaryAttribute();
		spotkaniaKlientNazwaAttribute.setId("spotkaniaKlientNazwaAttribute");
		spotkaniaKlientNazwaAttribute.setJoinColumnName("KLIENT_ID");
		spotkaniaKlientNazwaAttribute.setName("spotkaniaKlientNazwaAttribute");
		spotkaniaKlientNazwaAttribute.setReferenceClass(klientClass);
		spotkaniaKlientNazwaAttribute.setReferenceAttribute(klientNazwaAttribute);
		spotkaniaClass.addAttribute(spotkaniaKlientNazwaAttribute);
		
		spotkaniaDoradcaAttribute = new DictionaryAttribute();
		spotkaniaDoradcaAttribute.setId("spotkaniaDoradcaAttribute");
		spotkaniaDoradcaAttribute.setJoinColumnName("PRACOWNIK_ID");
		spotkaniaDoradcaAttribute.setName("doradca");
		spotkaniaDoradcaAttribute.setReferenceAttribute(doradcaNazwaAttribute);
		spotkaniaDoradcaAttribute.setReferenceClass(doradcaClass);
		spotkaniaClass.addAttribute(spotkaniaDoradcaAttribute);
		
		spotkaniaZespolAttribute = new DictionaryAttribute();
		spotkaniaZespolAttribute.setId("spotkaniaZespolAttribute");
		spotkaniaZespolAttribute.setJoinColumnName("PRACOWNIK_ID");
		spotkaniaZespolAttribute.setName("zespol");
		spotkaniaZespolAttribute.setReferenceAttribute(doradcaZespolAttribute);
		spotkaniaZespolAttribute.setReferenceClass(doradcaClass);
		spotkaniaClass.addAttribute(spotkaniaZespolAttribute);
		
		spotkaniaRegionAttribute = new DictionaryAttribute();
		spotkaniaRegionAttribute.setId("spotkaniaRegionAttribute");
		spotkaniaRegionAttribute.setJoinColumnName("PRACOWNIK_ID");
		spotkaniaRegionAttribute.setName("region");
		spotkaniaRegionAttribute.setReferenceAttribute(doradcaRegionAttribute);
		spotkaniaRegionAttribute.setReferenceClass(doradcaClass);
		spotkaniaClass.addAttribute(spotkaniaRegionAttribute);
		
		spotkaniaCentralaAttribute = new DictionaryAttribute();
		spotkaniaCentralaAttribute.setId("spotkaniaCentralaAttribute");
		spotkaniaCentralaAttribute.setJoinColumnName("PRACOWNIK_ID");
		spotkaniaCentralaAttribute.setName("centrala");
		spotkaniaCentralaAttribute.setReferenceAttribute(doradcaCentralaAttribute);
		spotkaniaCentralaAttribute.setReferenceClass(doradcaClass);
		spotkaniaClass.addAttribute(spotkaniaCentralaAttribute);
	}

	private void initReport5() {
		report5 = new Report();
		report5.setMainClass(this.klientClass);
		report5.setId("5");
		report5.setName("5");
		
		report5KlientNazwaAttribute = new ReportSimpleColumn("c1");
		report5KlientNazwaAttribute.setDomainAttribute(klientNazwaAttribute);
		report5.addColumn(report5KlientNazwaAttribute);
		
		report5KlientTelefonAttribute = new ReportSimpleColumn("c2");
		report5KlientTelefonAttribute.setDomainAttribute(klientTelefonAttribute);
		report5.addColumn(report5KlientTelefonAttribute);
		
		report5KlientDoradcaAttribute = new ReportSimpleColumn("c3");
		report5KlientDoradcaAttribute.setDomainAttribute(klientDoradcaAttribute);
		report5.addColumn(report5KlientDoradcaAttribute);
		
		report5KlientZespolAttribute = new ReportSimpleColumn("c4");
		report5KlientZespolAttribute.setDomainAttribute(klientZespolAttribute);
		report5.addColumn(report5KlientZespolAttribute);
		
		report5KlientDaneFinansoweAttribute = new ReportReferenceColumn("c5");
		report5KlientDaneFinansoweAttribute.setDomainAttribute(klientDaneFinansoweAttribute);
		ReportSimpleColumn rsc1 = new ReportSimpleColumn("rsc1");
		rsc1.setDomainAttribute(daneFinansowePrzychodAttribute);
		report5KlientDaneFinansoweAttribute.setReferenceColumn(rsc1);
		report5.addColumn(report5KlientDaneFinansoweAttribute);
	}

	private void initReport4() {
		report4 = new Report();
		report4.setMainClass(this.klientClass);
		report4.setId("4");
		report4.setName("4");
		
		report4KlientNazwaAttribute = new ReportSimpleColumn("c1");
		report4KlientNazwaAttribute.setDomainAttribute(klientNazwaAttribute);
		report4.addColumn(report4KlientNazwaAttribute);
		
		report4KlientTelefonAttribute = new ReportSimpleColumn("c2");
		report4KlientTelefonAttribute.setDomainAttribute(klientTelefonAttribute);
		report4.addColumn(report4KlientTelefonAttribute);
		
		report4KlientDoradcaAttribute = new ReportSimpleColumn("c3");
		report4KlientDoradcaAttribute.setDomainAttribute(klientDoradcaAttribute);
		report4.addColumn(report4KlientDoradcaAttribute);
	}

	private void initReport3() {
		report3 = new Report();
		report3.setMainClass(this.klientClass);
		report3.setId("3");
		report3.setName("3");
		
		report3KlientNazwaAttribute = new ReportSimpleColumn("c1");
		report3KlientNazwaAttribute.setDomainAttribute(klientNazwaAttribute);
		report3.addColumn(report3KlientNazwaAttribute);
		
		report3KlientTelefonAttribute = new ReportSimpleColumn("c2");
		report3KlientTelefonAttribute.setDomainAttribute(klientTelefonAttribute);
		report3.addColumn(report3KlientTelefonAttribute);
		
		report3KlientDaneFinansoweAttribute = new ReportReferenceColumn("c3");
		report3KlientDaneFinansoweAttribute.setDomainAttribute(klientDaneFinansoweAttribute);
		ReportSimpleColumn rsc1 = new ReportSimpleColumn("c4");
		rsc1.setDomainAttribute(daneFinansowePrzychodAttribute);
		report3KlientDaneFinansoweAttribute.setReferenceColumn(rsc1);
		report3.addColumn(report3KlientDaneFinansoweAttribute);
		
	}

	private void initReport2() {
		report2 = new Report();
		report2.setMainClass(this.klientClass);
		report2.setId("2");
		report2.setName("2");
		
		report2KlientNazwa = new ReportSimpleColumn("c1");
		report2KlientNazwa.setDomainAttribute(klientNazwaAttribute);
		report2.addColumn(report2KlientNazwa);
		
		report2KlientTelefon = new ReportSimpleColumn("c2");
		report2KlientTelefon.setDomainAttribute(klientTelefonAttribute);
		report2.addColumn(report2KlientTelefon);
	}

	private void initReport1() {
		report1 = new Report();
		report1.setMainClass(this.klientClass);
		report1.setId("1");
		report1.setName("1");
		
		report1KlientNazwa = new ReportSimpleColumn("c1");
		report1KlientNazwa.setDomainAttribute(klientNazwaAttribute);
		report1KlientNazwa.setType(ReportColumnType.TEXT);
		report1.addColumn(report1KlientNazwa);
	}
	

	private void initSegment() {
		segmentClass = new DomainClass();
		segmentClass.setId("segmentClass");
		segmentClass.setName("segmentClass");
		segmentClass.setTableName("SEGMENTY");

		segmentIdAttribute = new SimpleAttribute();
		segmentIdAttribute.setId("segmentIdAttribute");
		segmentIdAttribute.setName("segmentId");
		segmentIdAttribute.setExpression("SEGMENT_KOD");
		segmentClass.addAttribute(segmentIdAttribute);
		segmentClass.setPrimaryAttribute(segmentIdAttribute);
		
		segmentNazwaAttribute = new SimpleAttribute();
		segmentNazwaAttribute.setId("segmentNazwaAttribute");
		segmentNazwaAttribute.setName("segmentNazwa");
		segmentNazwaAttribute.setExpression("NAZWA");
		segmentClass.addAttribute(segmentNazwaAttribute);	
	}
	
	private void initEtap() {
		etapClass = new DomainClass();
		etapClass.setId("etapClass");
		etapClass.setName("etapClass");
		etapClass.setTableName("ETAPY_PROSPEKTOW");

		etapIdAttribute = new SimpleAttribute();
		etapIdAttribute.setId("etapIdAttribute");
		etapIdAttribute.setName("etapId");
		etapIdAttribute.setExpression("ETAP_PROSPEKTA_ID");
		etapClass.addAttribute(etapIdAttribute);
		etapClass.setPrimaryAttribute(etapIdAttribute);
		
		etapNazwaAttribute = new SimpleAttribute();
		etapNazwaAttribute.setId("etapNazwaAttribute");
		etapNazwaAttribute.setName("etapNazwa");
		etapNazwaAttribute.setExpression("NAZWA");
		etapClass.addAttribute(etapNazwaAttribute);	
	}
	
	private void initStatus() {
		statusClass = new DomainClass();
		statusClass.setId("statusClass");
		statusClass.setName("statusClass");
		statusClass.setTableName("STATUSY_PROSPEKTOW");

		statusIdAttribute = new SimpleAttribute();
		statusIdAttribute.setId("statusIdAttribute");
		statusIdAttribute.setName("statusId");
		statusIdAttribute.setExpression("STATUS_PROSPEKTA_ID");
		statusClass.addAttribute(statusIdAttribute);
		statusClass.setPrimaryAttribute(statusIdAttribute);
		
		statusNazwaAttribute = new SimpleAttribute();
		statusNazwaAttribute.setId("statusNazwaAttribute");
		statusNazwaAttribute.setName("statusNazwa");
		statusNazwaAttribute.setExpression("NAZWA");
		statusClass.addAttribute(statusNazwaAttribute);	
	}
	
	private void initCentralaClass() {
		centralaClass = new DomainClass();
		centralaClass.setId("centralaClass");
		centralaClass.setName("centralaClass");
		centralaClass.setTableName("CENTRALA_V");

		centralaIdAttribute = new SimpleAttribute();
		centralaIdAttribute.setId("centralaIdAttribute");
		centralaIdAttribute.setName("centralaId");
		centralaIdAttribute.setExpression("HIERARCHIA_ID");
		centralaClass.addAttribute(centralaIdAttribute);
		centralaClass.setPrimaryAttribute(centralaIdAttribute);
		
		centralaNazwaAttribute = new SimpleAttribute();
		centralaNazwaAttribute.setId("centralaNazwaAttribute");
		centralaNazwaAttribute.setName("centralaNazwa");
		centralaNazwaAttribute.setExpression("NAZWA");
		centralaClass.addAttribute(centralaNazwaAttribute);			
	}
	
	private void initRegionClass() {
		regionClass = new DomainClass();
		regionClass.setId("regionClass");
		regionClass.setName("regionClass");
		regionClass.setTableName("REGIONY_V");

		regionIdAttribute = new SimpleAttribute();
		regionIdAttribute.setId("regionIdAttribute");
		regionIdAttribute.setName("regionId");
		regionIdAttribute.setExpression("HIERARCHIA_ID");
		regionClass.addAttribute(regionIdAttribute);
		regionClass.setPrimaryAttribute(regionIdAttribute);
		
		regionNazwaAttribute = new SimpleAttribute();
		regionNazwaAttribute.setId("regionNazwaAttribute");
		regionNazwaAttribute.setName("regionNazwa");
		regionNazwaAttribute.setExpression("NAZWA");
		regionClass.addAttribute(regionNazwaAttribute);
		
		regionCentralaAttribute = new DictionaryAttribute();
		regionCentralaAttribute.setId("regionCentralaAttribute");
		regionCentralaAttribute.setJoinColumnName("NADRZEDNE_ID");
		regionCentralaAttribute.setName("centrala");
		regionCentralaAttribute.setReferenceAttribute(centralaNazwaAttribute);
		regionCentralaAttribute.setReferenceClass(centralaClass);
		regionClass.addAttribute(regionCentralaAttribute);
		
	}
	
	
	
	private void initZespolClass() {
		zespolClass = new DomainClass();
		zespolClass.setId("zespolClass");
		zespolClass.setName("zespolClass");
		zespolClass.setTableName("ZESPOLY_V");

		zespolIdAttribute = new SimpleAttribute();
		zespolIdAttribute.setId("zespolIdAttribute");
		zespolIdAttribute.setName("zespolId");
		zespolIdAttribute.setExpression("HIERARCHIA_ID");
		zespolClass.addAttribute(zespolIdAttribute);
		zespolClass.setPrimaryAttribute(zespolIdAttribute);
		
		zespolNazwaAttribute = new SimpleAttribute();
		zespolNazwaAttribute.setId("zespolNazwaAttribute");
		zespolNazwaAttribute.setName("zespolNazwa");
		zespolNazwaAttribute.setExpression("NAZWA");
		zespolClass.addAttribute(zespolNazwaAttribute);
		
		zespolRegionAttribute = new DictionaryAttribute();
		zespolRegionAttribute.setId("zespolRegionAttribute");
		zespolRegionAttribute.setJoinColumnName("NADRZEDNE_ID");
		zespolRegionAttribute.setName("region");
		zespolRegionAttribute.setReferenceAttribute(regionNazwaAttribute);
		zespolRegionAttribute.setReferenceClass(regionClass);
		zespolClass.addAttribute(zespolRegionAttribute);
		
		zespolCentralaAttribute = new DictionaryAttribute();
		zespolCentralaAttribute.setId("zespolCentralaAttribute");
		zespolCentralaAttribute.setJoinColumnName("NADRZEDNE_ID");
		zespolCentralaAttribute.setName("centrala");
		zespolCentralaAttribute.setReferenceAttribute(regionCentralaAttribute);
		zespolCentralaAttribute.setReferenceClass(regionClass);
		zespolClass.addAttribute(zespolCentralaAttribute);
	}

	private void initDoradcaClass() {
		doradcaClass = new DomainClass();
		doradcaClass.setId("doradcaClass");
		doradcaClass.setName("doradcaClass");
		doradcaClass.setTableName("DORADCY_V");

		doradcaIdAttribute = new SimpleAttribute();
		doradcaIdAttribute.setId("doradcaIdAttribute");
		doradcaIdAttribute.setName("doradcaId");
		doradcaIdAttribute.setExpression("PRACOWNIK_ID");
		doradcaClass.addAttribute(doradcaIdAttribute);
		doradcaClass.setPrimaryAttribute(doradcaIdAttribute);
		
		doradcaNazwaAttribute = new SimpleAttribute();
		doradcaNazwaAttribute.setId("doradcaNazwaAttribute");
		doradcaNazwaAttribute.setName("doradcaNazwa");
		doradcaNazwaAttribute.setExpression("$.IMIE || ' ' || $.NAZWISKO");
		doradcaClass.addAttribute(doradcaNazwaAttribute);
		
		doradcaZespolAttribute = new DictionaryAttribute();
		doradcaZespolAttribute.setId("doradcaZespolAttribute");
		doradcaZespolAttribute.setJoinColumnName("HIERARCHIA_ID");
		doradcaZespolAttribute.setName("zespol");
		doradcaZespolAttribute.setReferenceAttribute(zespolNazwaAttribute);
		doradcaZespolAttribute.setReferenceClass(zespolClass);
		doradcaClass.addAttribute(doradcaZespolAttribute);
		
		doradcaRegionAttribute = new DictionaryAttribute();
		doradcaRegionAttribute.setId("doradcaRegionAttribute");
		doradcaRegionAttribute.setJoinColumnName("HIERARCHIA_ID");
		doradcaRegionAttribute.setName("region");
		doradcaRegionAttribute.setReferenceAttribute(zespolRegionAttribute);
		doradcaRegionAttribute.setReferenceClass(zespolClass);
		doradcaClass.addAttribute(doradcaRegionAttribute);
		
		doradcaCentralaAttribute = new DictionaryAttribute();
		doradcaCentralaAttribute.setId("doradcaCentralaAttribute");
		doradcaCentralaAttribute.setJoinColumnName("HIERARCHIA_ID");
		doradcaCentralaAttribute.setName("centrala");
		doradcaCentralaAttribute.setReferenceAttribute(zespolCentralaAttribute);
		doradcaCentralaAttribute.setReferenceClass(zespolClass);
		doradcaClass.addAttribute(doradcaCentralaAttribute);
	}

	private void initDaneFinansoweClass() {
		daneFinansoweClass = new DomainClass();
		daneFinansoweClass.setId("daneFinansowe");
		daneFinansoweClass.setName("daneFinansowe");
		daneFinansoweClass.setTableName("DANE_FINANSOWE");
		
		daneFinansoweKlientIdAttribute = new SimpleAttribute();
		daneFinansoweKlientIdAttribute.setId("daneFinansoweKlientIdAttribute");
		daneFinansoweKlientIdAttribute.setName("klientId");
		daneFinansoweKlientIdAttribute.setExpression("KLIENT_ID");
		daneFinansoweClass.addAttribute(daneFinansoweKlientIdAttribute);
		daneFinansoweClass.setPrimaryAttribute(daneFinansoweKlientIdAttribute);
		
		daneFinansowePrzychodAttribute = new SimpleAttribute();
		daneFinansowePrzychodAttribute.setId("daneFinansowePrzychodAttribute");
		daneFinansowePrzychodAttribute.setName("przychod");
		daneFinansowePrzychodAttribute.setExpression("PRZYCHOD");
		daneFinansowePrzychodAttribute.setMeasure(true);
		daneFinansoweClass.addAttribute(daneFinansowePrzychodAttribute);
		
		daneFinansoweLiczbaZatrudnionychAttribute = new SimpleAttribute();
		daneFinansoweLiczbaZatrudnionychAttribute.setId("daneFinansoweLiczbaZatrudnionychAttribute");
		daneFinansoweLiczbaZatrudnionychAttribute.setName("liczbaZatrudnionych");
		daneFinansoweLiczbaZatrudnionychAttribute.setExpression("LICZBA_ZATRUDNIONYCH");
		daneFinansoweLiczbaZatrudnionychAttribute.setMeasure(true);
		daneFinansoweClass.addAttribute(daneFinansoweLiczbaZatrudnionychAttribute);
	}

	private void initKlientClass() {
		klientClass = new DomainClass();
		klientClass.setId("klient");
		
		klientClass.setName("Klient");
		klientClass.setTableName("KLIENCI");
		
		klientIdAttribute = new SimpleAttribute();
		klientIdAttribute.setName("klientId");
		klientIdAttribute.setExpression("KLIENT_ID");
		klientIdAttribute.setId("klientIdAttribute");
		klientClass.addAttribute(klientIdAttribute);
		klientClass.setPrimaryAttribute(klientIdAttribute);
		
		klientNazwaAttribute = new SimpleAttribute();
		klientNazwaAttribute.setName("nazwa");
		klientNazwaAttribute.setExpression("NAZWA");
		klientNazwaAttribute.setId("klientNazwaAttribute");
		klientClass.addAttribute(klientNazwaAttribute);
		
		klientTelefonAttribute = new SimpleAttribute();
		klientTelefonAttribute.setName("telefon");
		klientTelefonAttribute.setExpression("TELEFON");
		klientTelefonAttribute.setId("klientTelefonAttribute");
		klientClass.addAttribute(klientTelefonAttribute);
		
		klientSegmentAttribute = new DictionaryAttribute();
		klientSegmentAttribute.setId("klientSegmentAttribute");
		klientSegmentAttribute.setJoinColumnName("SEGMENT_KOD");
		klientSegmentAttribute.setName("segment");
		klientSegmentAttribute.setReferenceAttribute(segmentNazwaAttribute);
		klientSegmentAttribute.setReferenceClass(segmentClass);
		klientClass.addAttribute(klientSegmentAttribute);
		
		klientEtapAttribute = new DictionaryAttribute();
		klientEtapAttribute.setId("klientEtapAttribute");
		klientEtapAttribute.setJoinColumnName("ETAP_PROSPEKTA_ID");
		klientEtapAttribute.setName("etap");
		klientEtapAttribute.setReferenceAttribute(etapNazwaAttribute);
		klientEtapAttribute.setReferenceClass(etapClass);
		klientClass.addAttribute(klientEtapAttribute);
		
		klientStatusAttribute = new DictionaryAttribute();
		klientStatusAttribute.setId("klientStatusAttribute");
		klientStatusAttribute.setJoinColumnName("STATUS_PROSPEKTA_ID");
		klientStatusAttribute.setName("status");
		klientStatusAttribute.setReferenceAttribute(statusNazwaAttribute);
		klientStatusAttribute.setReferenceClass(statusClass);
		klientClass.addAttribute(klientStatusAttribute);
		
		klientDoradcaAttribute = new DictionaryAttribute();
		klientDoradcaAttribute.setId("klientDoradcaAttribute");
		klientDoradcaAttribute.setJoinColumnName("PRACOWNIK_ID");
		klientDoradcaAttribute.setName("doradca");
		klientDoradcaAttribute.setReferenceAttribute(doradcaNazwaAttribute);
		klientDoradcaAttribute.setReferenceClass(doradcaClass);
		klientClass.addAttribute(klientDoradcaAttribute);
		
		klientDaneFinansoweAttribute = new ReferenceAttribute();
		klientDaneFinansoweAttribute.setId("klientDaneFinansoweAttribute");
		klientDaneFinansoweAttribute.setJoinColumnName("KLIENT_ID");
		klientDaneFinansoweAttribute.setName("klientDaneFinansoweAttribute");
		klientDaneFinansoweAttribute.setReferenceClass(daneFinansoweClass);
		klientClass.addAttribute(klientDaneFinansoweAttribute);
		
		klientZespolAttribute = new DictionaryAttribute();
		klientZespolAttribute.setId("klientZespolAttribute");
		klientZespolAttribute.setJoinColumnName("PRACOWNIK_ID");
		klientZespolAttribute.setName("zespol");
		klientZespolAttribute.setReferenceAttribute(doradcaZespolAttribute);
		klientZespolAttribute.setReferenceClass(doradcaClass);
		klientClass.addAttribute(klientZespolAttribute);
		
		klientRegionAttribute = new DictionaryAttribute();
		klientRegionAttribute.setId("klientRegionAttribute");
		klientRegionAttribute.setJoinColumnName("PRACOWNIK_ID");
		klientRegionAttribute.setName("region");
		klientRegionAttribute.setReferenceAttribute(doradcaRegionAttribute);
		klientRegionAttribute.setReferenceClass(doradcaClass);
		klientClass.addAttribute(klientRegionAttribute);
		
		klientCentralaAttribute = new DictionaryAttribute();
		klientCentralaAttribute.setId("klientCentralaAttribute");
		klientCentralaAttribute.setJoinColumnName("PRACOWNIK_ID");
		klientCentralaAttribute.setName("centrala");
		klientCentralaAttribute.setReferenceAttribute(doradcaCentralaAttribute);
		klientCentralaAttribute.setReferenceClass(doradcaClass);
		klientClass.addAttribute(klientCentralaAttribute);
		
		klientSpotkaniaPodsumowanieAttribute = new ReferenceAttribute();
		klientSpotkaniaPodsumowanieAttribute.setId("klientSpotkaniaPodsumowanieAttribute");
		klientSpotkaniaPodsumowanieAttribute.setJoinColumnName("KLIENT_ID");
		klientSpotkaniaPodsumowanieAttribute.setName("klientSpotkaniaPodsumowanieAttribute");
		klientSpotkaniaPodsumowanieAttribute.setReferenceClass(spotkaniaPodsumowanieClass);
		klientClass.addAttribute(klientSpotkaniaPodsumowanieAttribute);
	}
	
	private void initSpotkaniaPodsumowanieClass() {
		spotkaniaPodsumowanieClass = new DomainClass();
		spotkaniaPodsumowanieClass.setId("spotkaniaPodsumowanieClass");
		spotkaniaPodsumowanieClass.setName("spotkaniaPodsumowanieClass");
		spotkaniaPodsumowanieClass.setTableName("SPOTKANIA_PODSUMOWANIE");
		spotkaniaPodsumowanieClass.setPrimaryAttribute(spotkaniaPodsumowanieKlient);
		
		spotkaniaPodsumowanieKlient = new SimpleAttribute();
		spotkaniaPodsumowanieKlient.setExpression("KLIENT_ID");
		spotkaniaPodsumowanieKlient.setMeasure(false);
		spotkaniaPodsumowanieKlient.setName("spotkaniaPodsumowanieKlient");
		spotkaniaPodsumowanieKlient.setId("spotkaniaPodsumowanieKlient");
		spotkaniaPodsumowanieClass.addAttribute(spotkaniaPodsumowanieKlient);
		spotkaniaPodsumowanieClass.setPrimaryAttribute(spotkaniaPodsumowanieKlient);
		
		spotkaniaPodsumowanieLiczbaSpotkan30 = new SimpleAttribute();
		spotkaniaPodsumowanieLiczbaSpotkan30.setExpression("SPOTKANIA_30");
		spotkaniaPodsumowanieLiczbaSpotkan30.setMeasure(true);
		spotkaniaPodsumowanieLiczbaSpotkan30.setName("spotkaniaPodsumowanieLiczbaSpotkan30");
		spotkaniaPodsumowanieLiczbaSpotkan30.setId("spotkaniaPodsumowanieLiczbaSpotkan30");
		spotkaniaPodsumowanieClass.addAttribute(spotkaniaPodsumowanieLiczbaSpotkan30);
		
		spotkaniaPodsumowanieLiczbaSpotkan90 = new SimpleAttribute();
		spotkaniaPodsumowanieLiczbaSpotkan90.setExpression("SPOTKANIA_90");
		spotkaniaPodsumowanieLiczbaSpotkan90.setMeasure(true);
		spotkaniaPodsumowanieLiczbaSpotkan90.setName("spotkaniaPodsumowanieLiczbaSpotkan90");
		spotkaniaPodsumowanieLiczbaSpotkan90.setId("spotkaniaPodsumowanieLiczbaSpotkan90");
		spotkaniaPodsumowanieClass.addAttribute(spotkaniaPodsumowanieLiczbaSpotkan90);
		
		spotkaniaPodsumowanieLiczbaSpotkan360 = new SimpleAttribute();
		spotkaniaPodsumowanieLiczbaSpotkan360.setExpression("SPOTKANIA_360");
		spotkaniaPodsumowanieLiczbaSpotkan360.setMeasure(true);
		spotkaniaPodsumowanieLiczbaSpotkan360.setName("spotkaniaPodsumowanieLiczbaSpotkan360");
		spotkaniaPodsumowanieLiczbaSpotkan360.setId("spotkaniaPodsumowanieLiczbaSpotkan360");
		spotkaniaPodsumowanieClass.addAttribute(spotkaniaPodsumowanieLiczbaSpotkan360);
	}
	
	private void initOstatnieSpotkanie() {
		spotkaniaPodsumowanieOstatnie = new ReferenceAttribute();
		spotkaniaPodsumowanieOstatnie.setId("spotkaniaPodsumowanieOstatnie");
		spotkaniaPodsumowanieOstatnie.setJoinColumnName("OSTATNIE_SPOTKANIE_ID");
		spotkaniaPodsumowanieOstatnie.setName("spotkaniaPodsumowanieOstatnie");
		spotkaniaPodsumowanieOstatnie.setReferenceClass(spotkaniaClass);
		spotkaniaPodsumowanieClass.addAttribute(spotkaniaPodsumowanieOstatnie);
	}
}
